The present invention relates to voice processing systems for supporting one or more voice processing applications.
Voice processing systems are widely used in call centres and other environments to manage interactions with customers, thereby reducing the number of relatively expensive human agents required to service customer inquiries, whilst at the same time providing improved responsiveness for callers. The vast majority of voice processing applications developed for use in such situations are still based primarily on a relatively simple set of operations, including playing the caller a prompt (typically a question, perhaps asking them to specify the particular service in which they are interested), receiving a dual tone multiple frequency (DTMF) key input from the caller in response to such prompt, and then performing some action in response to the caller selection. Examples of possible actions include playing a prompt to obtain further DTMF input, recording a voice message from the caller, transferring the caller to another extension, or playing some information to the caller, such as an account balance, or timetable information (this may require the voice processing system to interact with a separate computer database). The prompts and other information played out in audio form to callers typically comprise one or more pre-recorded audio segments which can be assembled together as required.
It will be appreciated that an enormous range of voice processing applications have been developed in the industry, both inbound and outbound. One problem with traditional voice processing systems is that they have often each provided their own specific voice application environment. This has had several unfortunate consequences, for example it is difficult to port voice applications from one voice processing system to another, whilst at the same time few voice processing systems are properly scalable across the whole range of potential operation (from handling a few lines up to several hundred). Thus a user having a heterogeneous system environment is prevented from flexibly deploying a single voice processing application across all machines.
The provision of a specialised voice application environment also makes voice processing applications difficult to integrate with general computing business systems in an organisation, and in addition voice processing applications are often harder and more expensive to develop (since programmers must learn about the specialised environment). These problems are becoming ever more acute with the rapidly increasing the number of voice processing systems employed in customer situations, and the need to provide good integration between the voice processing applications and the overall management information systems.
U.S. Patent Publication 6,335,964B1, filed Sep. 19, 1997, describes a voice processing application environment, based on the object-oriented (00) Java programming language. In particular, this document describes the provision of a set of telephony Java Beans (i.e. programming components) which can be readily integrated using standard Java program development tools into general business applications to provide straightforward access to telephony functionality on any platform. A Java-based voice processing architecture called xe2x80x9cInteractive Communications Managementxe2x80x9d has been disclosed by Syntellect Inc. EP-A-658855 discloses the integration of a multimedia facility within an object oriented environment, whereby selection of an object by a user of an audio view can result in output for example using a text to speech facility.
An important feature of the above-mentioned UK patent application is the ability to render details of the voice processing system effectively transparent to the application, thereby providing full platform independence. It is difficult to provide an efficient interface between the application and the telephony system in order to allow the application access to telephone functionality, without building into the application some knowledge of the underlying voice processing system, and thereby compromising flexibility. One particular complication for example involves playing a prompt, due to the variations in the way that certain information such as dates and times are handled in such situations.
Accordingly, the present invention provides a voice processing system for connection to at least one telephone line for providing telephony support to one or more voice processing applications, comprising:
means for receiving a media object from a voice processing application, said media object representing desired output over a telephone line;
means for processing said media object into a set of a plurality of output components in accordance with one or more presentation criteria; and
means for outputting said output components over the telephone line.
In the preferred embodiment, said output components comprise individual voice segments, and said means for processing said media object into a set of a plurality of output components includes means for generating a set of voice segments for said media object in accordance with one or more presentation criteria.
The presentation criteria can generally be specified by said voice processing application, determined automatically by the voice processing system (typically using default values), or some combination of the two. Example of presentation criteria include the locale and a presentation style.
Such an approach provides great flexibility, in that there is no need to hard code information such as locale or presentation style into the application, but instead these can be provided by the default telephony environment. This allows applications to be developed without needing to know in advance the countries or languages in which they will be deployed. Moreover, the ability to override the default settings is valuable for example where one voice processing system is running the essentially the same application in two different languages, potentially accessible from two different countries.
The invention further provides a method of operating a voice processing system for connection to at least one telephone line for providing telephony support to one or more voice processing applications, said method comprising the steps of:
receiving a media object from a voice processing application, said media object representing desired output over a telephone line;
processing said media object into a set of a plurality of output components in accordance with one or more presentation criteria; and
outputting said output components over the telephone line.
In the preferred embodiment, said media object is received via remote method invocation in serialised form, thereby allowing the voice application to reside on a different machine than the voice processing system.
The invention also provides a voice processing complex comprising a plurality of host machines, each host machine supporting one or more voice applications, at least one host in the complex including telephony hardware for providing access to a plurality of telephone lines, said at least one host including:
means for maintaining a mapping of voice applications to telephone lines;
means for creating a call object in response to an incoming call on one of said plurality of telephone lines;
means for determining a voice application to be associated with said incoming call on the basis of said mapping of voice applications to telephone lines;
means for providing an identifier for said call object to the determined voice application; and
means in said call object responsive to requests from said determined voice application for providing telephony functions to said incoming call.
In the preferred embodiment the determined voice application is on a different host from the call object, and accesses the call object via remote method invocation. Applications which are currently available to receive an incoming call, register themselves with the voice processing means; if there is an incoming call on a telephone line for which no application is registered, then a default application is launched.
The invention further provides a voice processing system for supporting one or more voice applications, said voice processing system including:
telephony hardware for providing access to a plurality of telephone lines;
means for maintaining a mapping of voice applications to telephone lines;
means for creating a call object in response to an incoming call on one of said plurality of telephone lines;
means for determining a voice application to be associated with said incoming call on the basis of said mapping of voice applications to telephone lines;
means for providing an identifier for said call object to the determined voice application;
means in said call object for receiving a media object from said determined voice processing application, said media object representing desired output over said one telephone line;
means for processing said media object into a set of a plurality of output components in accordance with one or more presentation criteria; and
means for outputting said output components over said one telephone line.
The invention further provides a voice processing system for connection to at least one telephone line for providing telephony functionality to one or more voice processing applications, said voice processing system comprising:
first application manager means for launching a first voice processing application when the voice processing system in initialised, said application manager means providing access to said telephony function for said first voice processing application; and
second application manager means which is launched responsive to a request by a second voice processing application for access to said telephony function.
Thus one of the difficulties when trying to separate the application from""specifics of the telephony functionality is in supplying information about the actual telephony environment into a generic application. In the preferred embodiment, this is achieved by supplying configuration information to an application manager when the system is initialised, which can then be made available to the application. This is satisfactory for applications which are effectively subservient to the voice processing environment, but ill-suited to certain applications for example where the telephony is only a minor part of such applications, or perhaps only required on an intermittent basis. Thus the voice processing architecture of the present invention also allows such applications to create their own application manager (note that in this case the application must provide its own information about the telephony resource to use, since this will not have been provided as part of the initial configuration). In the preferred embodiment, this is achieved by making said first and second voice processing applications obtain access to telephone functionality through a static interface into an application manager.